package com.atguigu.srb.sms.feign.fallback;

import com.atguigu.srb.base.result.ResponseEnum;
import com.atguigu.srb.base.result.ResponseVo;
import com.atguigu.srb.sms.feign.CoreClient;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;

//熔断降级方案的实现类必须加组件类的注解(@Service 、 @Component ...)
//如果不加 那么CoreClient是无法在容器中找到熔断降级方案的
@Service
@Slf4j
public class CoreClientFallback implements CoreClient {
    /*
        远程访问时 若进入熔断降级方案 返回的结果是不会被全局异常处理器处理的 熔断降级方案也相当于一个成功的响应
        业务代码 接口 处理请求时 只有抛出异常没有被捕获才会抛出交给全局异常处理器处理
     */
    @Override
    public ResponseVo isUsed(String mobile) {
        log.error("远程验证手机号是否重复注册失败:{}",mobile);
        return ResponseVo.setResult(ResponseEnum.ERROR);
    }
}
